/*
 * Copyright (c) 2007, Sun Microsystems, Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 * * Redistributions of source code must retain the above copyright notice,
 *   this list of conditions and the following disclaimer.
 * 
 * * Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 *
 * * Neither the name of Sun Microsystems, Inc. nor the names of its contributors
 *   may be used to endorse or promote products derived from this software without
 *   specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */
package enterprise.servlet_stateless_ejb;

import javax.ejb.Stateless;

@Stateless
public class StatelessSessionBean
        implements StatelessSession {

    public String sayHello(String name) {
        return "Hello, " + name + "!\n";
    }

    public String sayHello1(String name) {
        StringBuffer htmlPage = new StringBuffer();
        htmlPage.append("<HTML> <HEAD> <TITLE> Servlet Output </TITLE> </HEAD> <BODY BGCOLOR=white>");
        htmlPage.append("<CENTER> <FONT size=+1> Servlet2Stateless:: Please enter your name </FONT> </CENTER> <p> ");
        htmlPage.append("<form method=\"POST\">");
        htmlPage.append("<TABLE>");
        htmlPage.append("<tr><td>Name: </td>");
        htmlPage.append("<td><input type=\"text\" name=\"name\"> </td>");
        htmlPage.append("</tr><tr><td></td>");
        htmlPage.append("<td><input type=\"submit\" name=\"sub\"> </td>");
        htmlPage.append("</tr>");
        htmlPage.append("</TABLE>");
        htmlPage.append("</form>");

        if ((name != null) && (name.trim().length() > 0)) {
            htmlPage.append("<FONT size=+1 color=blue> Greeting from StatelessSessionBean: </FONT> " + this.sayHello(name) + "<br>");
        }
        htmlPage.append(genTree(new StringBuffer(), "", 0, 3));
        htmlPage.append(getXMLdata());
        htmlPage.append("</BODY> </HTML> ");

        return htmlPage.toString();
    }

    private String genTree(StringBuffer tree, String path, int level, int depth) {
        if (level < depth) {
            tree.append("<ul>\n");
            for (int i = 1; i < Math.random() * 5 + 1; i++) {
                String fullPath;
                if (path.length() == 0) {
                    fullPath = path + i;
                } else {
                    fullPath = path + "." + i;
                }
                tree.append("<li>" + fullPath + "</li>\n");
                genTree(tree, fullPath, level + 1, depth);
            }
            tree.append("</ul>\n");
        }
        return tree.toString();
    }

    private String getXMLdata() {
        DomParserExample dpe = new DomParserExample();
		return dpe.getEmployeesInfo();
    }
}
